7 Series FPGAs Transceivers Wizard 配置详解

7 Series FPGAs Transceivers Wizard GT Selection页面

页面 1: GT Selection (GT 选择)

页面整体功能

这个界面是 Xilinx 7 系列 FPGA 高速收发器向导 (Transceivers Wizard) 的配置入口和第一个配置标签页 (GT Selection)。该向导用于帮助用户配置 FPGA 内部的高速串行收发器模块(如 GTX、GTH),以满足特定的通信协议(如 PCIe, SATA, Aurora, Ethernet 等)或自定义协议的需求。这个初始页面主要用于选择目标收发器类型 (GT Type) 和决定共享逻辑(如 QPLL、参考时钟缓冲器等)的放置方式。

界面内容详解

  1. 顶部信息栏
    • Component Name (组件名称): gtwizard_0
      解释: 这是将要生成的收发器 IP 核实例的名称。与 MIG 类似,这个名称将用于在 Vivado 工程中标识此 IP 核,并作为生成相关文件的基础名称。
      建议: 可以使用默认名称,或修改为更具描述性的名称,如 sata_gtx_coreaurora_channel_0_gt
    • 选项卡 (Tabs):
      • GT Selection (GT 选择): 当前显示的标签页,用于选择 GT 类型和共享逻辑位置。
      • Line Rate, RefClk Selection (线速率, 参考时钟选择): 后续页面,用于配置收发器的数据传输速率和参考时钟源频率及类型。
      • Encoding and Clocking (编码与时钟): 配置数据编码方式(如 8b/10b, 64b/66b)和内部时钟结构。
      • Comma Alignment and Equalization (同步字对齐与均衡): 配置用于数据流同步的特殊字符(Comma)以及接收端的均衡设置(DFE, LPM)以补偿信号损失。
      • PCIe, SATA, PRBS: 可能包含针对特定协议(如 PCIe, SATA)的预设或用于测试的伪随机码序列 (PRBS) 生成/检查功能的配置。
      • CB and CC Sequence (通道绑定与时钟校正): 配置多通道绑定和时钟偏差补偿相关的功能。
      • Summary (摘要): 显示所有配置选项的汇总信息。
  2. GT Selection (GT 选择) 标签页内容
    • 英文原文: "Kintex/Virtex 7 GTX Silicon revision supported by this IP core version: General ES & Production"
      中文翻译: "此 IP 核版本支持的 Kintex/Virtex 7 GTX 芯片修订版本:通用工程样品 (General ES) 和量产 (Production) 版本"
      解释: 表明当前这个版本的 Transceiver Wizard IP 支持(即已经过测试和验证)Kintex-7 和 Virtex-7 FPGA 中 GTX 收发器的通用工程样品和最终量产版本的芯片。
    • 英文原文: "Using a wrapper generated with this version of the wizard to program a Initial ES Kintex/Virtex-7 GTX device is not supported. Please use v1.5 Rev2 to program Initial ES GTX devices"
      中文翻译: "使用此版本向导生成的封装器 (wrapper) 来编程初始工程样品 (Initial ES) 的 Kintex/Virtex-7 GTX 器件是不支持的。请使用 v1.5 Rev2 版本来编程初始 ES GTX 器件。"
      解释: 这是一个重要警告!对于最早期的工程样品芯片(被称为 Initial ES),不能使用当前这个版本的向导生成的代码/封装器,而必须使用一个更旧的特定版本(v1.5 Rev2)的向导。对于使用通用 ES 或量产芯片的用户,此条信息可以忽略。
  3. GT Type (GT 类型) 部分:
    • 下拉框 GT Type: GTX
      解释: 选择你想要配置和使用的收发器硬核模块的类型。7 系列 FPGA 中主要包含 GTX 和 GTH 两种类型的收发器,它们在最高速率、功耗和功能上有所不同(GTH 通常更快)。
      黄色提示框:
      英文原文: "The type of the GT can be GTX or GTH or both based on the device and package selected from PlanAhead."
      中文翻译: "GT 的类型可以是 GTX 或 GTH,或两者皆有,这取决于从 PlanAhead (Vivado) 中选择的器件和封装。"
      解释: 这个下拉框中可供选择的 GT 类型(是只有 GTX,只有 GTH,还是两者都有)是由你在 Vivado 工程中设置的具体 FPGA 器件型号决定的。例如,某些 Artix-7 或 Kintex-7 器件可能只有 GTX,而高端的 Virtex-7 或 Zynq 器件可能同时拥有 GTX 和 GTH。向导会自动检测你的目标器件包含哪些类型的收发器。
      建议: 必须根据你的目标 FPGA 器件所包含的、并且你打算在设计中使用的收发器类型来选择。 如果你的芯片只有 GTX,这里通常也只会显示 GTX。如果同时有 GTX 和 GTH,你需要根据你的应用(例如,协议要求的速率)来选择合适的类型。
  4. Shared Logic (共享逻辑) 部分:
    • 英文原文: "Select whether the transceiver quad PLL, transceiver differential refclk buffer, clocking and reset logic are included in the core itself or in the example design"
      中文翻译: "选择收发器 Quad PLL、收发器差分参考时钟缓冲器、时钟和复位逻辑是包含在核自身内部,还是包含在示例设计中"
      解释: FPGA 中的高速收发器通常以 "Quad"(四个通道/Lane)为单位组织。同一个 Quad 内的多个收发器通道经常需要共享一些公共资源,最主要的就是 QPLL (Quad PLL,用于生成高速串行时钟) 和 差分参考时钟缓冲器 (IBUFDS_GTE*)。此外,还可能有一些相关的时钟生成逻辑和复位逻辑也是可以共享的。这个选项让你决定这些共享资源的逻辑是直接打包在你当前配置的这个 gtwizard_0 IP 核内部,还是放在 IP 核外部(由示例设计提供,或者后续由用户手动管理)。
    • 选项 1: Include Shared Logic in core (在核内包含共享逻辑)
      解释: 选择此项,生成的 gtwizard_0 IP 核将包含它所需要的所有逻辑,包括那些共享资源(QPLL, RefClk Buffer 等)。这个 IP 实例会变得"自给自足"。
    • 选项 2: Include Shared Logic in example design (在示例设计中包含共享逻辑) (图片中选中此项)
      解释: 选择此项,生成的 gtwizard_0 IP 核只包含其自身的通道逻辑 (Channel Logic)不包含共享的 QPLL、RefClk Buffer 等。这些共享逻辑需要在 IP 核外部单独实例化,并连接到 gtwizard_0 的相应端口上。向导通常会生成一个示例设计 (example_design) 来演示如何做这种连接。
    • Shared Logic Overview (共享逻辑概述)
      英文原文:
      "Include Shared Logic in example design"
      "- For users who want the Shared Logic outside the core."
      "- For users who want to edit the Shared Logic or use their own."
      "- For users who want one core with Shared Logic to drive multiple cores without Shared Logic."
      中文翻译:
      "在示例设计中包含共享逻辑"
      "- 适用于希望共享逻辑位于核外部的用户。"
      "- 适用于希望编辑共享逻辑或使用自己的共享逻辑的用户。"
      "- 适用于希望用一个包含共享逻辑的核来驱动多个不包含共享逻辑的核的用户。"
      解释: 这个列表详细说明了选择"在示例设计中包含共享逻辑"(即共享逻辑在核外部)的几种主要原因和应用场景:
      1. 灵活性/层级化设计: 用户希望将共享资源作为一个独立的模块来管理,而不是混在某个通道的 IP 核里。
      2. 定制化: 用户可能想修改标准向导生成的共享逻辑,或者用自己设计的 PLL 或时钟缓冲方案来替代。
      3. 多通道/多核共享 (最常见原因): 当你需要使用同一个 Quad 内的多个收发器通道(Lanes)时,这些通道必须共享同一个 QPLL 和参考时钟缓冲器。如果每个通道的 GT Wizard IP 都选择"在核内包含共享逻辑",就会导致资源冲突和重复实例化。正确的做法是:
        • 实例化一个 GT Wizard 核(或者一个专门的共享逻辑模块),选择包含共享逻辑。
        • 为同一 Quad 内的其他通道实例化多个 GT Wizard 核,选择不包含共享逻辑(即选"在示例设计中包含...")。
        • 然后将那些不含共享逻辑的核的 QPLL 和 RefClk 相关端口连接到那个包含共享逻辑的核或模块的对应输出上。
    • 建议:
      • 如果你只使用一个 Quad 内的一个或多个通道,并且打算让向导一次性配置好所有这些通道, 选择 Include Shared Logic in core 可能更直接(但你需要确保在向导后续步骤正确配置多通道)。
      • 如果你需要在一个 Quad 内实例化多个独立的 GT Wizard IP 核(例如,每个核配置一个通道),或者你需要对共享逻辑进行定制,或者追求更清晰的设计层次结构, 强烈推荐选择 Include Shared Logic in example design (共享逻辑在核外)。这是更灵活、更通用的做法,尤其适用于多通道设计。图片中默认选中此项也印证了其常用性。

重要注意事项

资源冲突警告:如果你在同一个Quad内有多个通道,但每个通道的GT Wizard都选择了"在核内包含共享逻辑",会导致QPLL资源冲突!这可能会使设计无法正常工作或综合失败。在多通道设计中正确管理共享逻辑至关重要。

总结

这个 "GT Selection" 页面是配置高速收发器的第一步,核心是:

  1. 确认向导识别的 GT 类型 (GTX/GTH) 与你的 FPGA 和设计意图相符。
  2. 做出关于 共享逻辑 (QPLL, RefClk Buffer 等) 放置位置的关键决策。选择将共享逻辑放在核外部("in example design")通常能提供更大的灵活性,是多通道设计的标准做法。

最佳实践:对于大多数复杂设计,推荐将共享逻辑保留在示例设计中(即选择第二个选项)。这提供了更好的模块化设计,并允许多个收发器通道共享同一个QPLL,从而节省资源并确保正确的时钟分配。

理解共享逻辑的概念对于正确使用高速收发器至关重要。配置错误可能导致资源冲突或无法正常工作。

7 Series FPGAs Transceivers Wizard 线速率与参考时钟选择页面

页面 2: Line Rate, RefClk Selection (线速率与参考时钟选择)

页面整体功能

这个标签页是配置高速收发器 (GT) 最核心的部分之一。它主要用于设定收发器工作的数据传输速率 (Line Rate)、为其提供时钟参考的外部参考时钟频率 (Reference Clock),以及选择用于生成高速串行时钟的内部 PLL 类型 (QPLL 或 CPLL) 和具体的参考时钟来源。这些参数共同决定了串行链路的基础速度和时钟结构。

界面内容详解

  1. Protocol (协议)
    • 下拉框: Start from scratch (从零开始)
      解释: 允许用户选择一个预定义的通信协议标准(如 PCIe, SATA, Aurora, Ethernet 等)。如果选择了一个标准协议,向导通常会自动填充许多后续选项(如线速率、编码方式等)以符合该协议规范,简化配置过程。
      Start from scratch 的含义: 表示用户不基于任何标准协议模板,而是希望手动配置所有参数。这适用于实现自定义的串行协议或需要对标准协议进行特殊调整的情况。
      建议: 如果你的目标是实现一个标准协议,强烈建议在这里选择对应的协议,可以省去很多手动配置并减少出错可能。如果协议是自定义的,则选择 Start from scratch
  2. TX (发送端配置)
    • Line Rate (Gbps) (线速率): 3.125
      解释: 定义发送通道的原始串行数据传输速率,单位是千兆比特每秒 (Gbps)。这个速率是线路上的实际比特流速度,通常不包含 8b/10b 或 64b/66b 等线路编码带来的开销。
      旁注 [0.5 - 10.3125]: 表明对于当前选定的 FPGA 器件 (xc7z045i) 和 GT 类型 (GTX),支持的线速率范围是 0.5 Gbps 到 10.3125 Gbps。你设置的值必须落在这个范围内。
      建议: 必须根据你的通信需求精确设置此值。 这是决定链路速度的基础。例如,SATA II 是 3.0 Gbps,PCIe Gen1 是 2.5 Gbps,XAUI 是 4 x 3.125 Gbps。
    • TX off (关闭发送): (未勾选)
      解释: 如果勾选此项,将完全禁用当前配置的这个收发器通道的发送功能。
      建议: 仅在确实只需要接收功能或为了省电而明确需要关闭发送端时才勾选。
    • Reference Clock (MHz) (参考时钟): 156.250
      解释: 关键参数! 指定输入到 FPGA 参考时钟引脚 (RefClk pin),并最终提供给这个收发器通道 TX PLL 的外部参考时钟的频率,单位是兆赫兹 (MHz)。这个外部时钟是内部高速时钟合成的基准。
      旁注 Range: 60..670: 表明对于当前配置,可接受的参考时钟频率范围是 60 MHz 到 670 MHz。
      建议: 必须精确匹配你硬件上连接到 FPGA RefClk 引脚的晶振或时钟发生器的输出频率。 例如,如果你板上提供的是一个 156.25 MHz 的差分时钟,这里就必须设置为 156.250。选错会导致 PLL 无法锁定,收发器无法工作。常用的参考时钟频率有 100, 125, 156.25, 312.5 MHz 等,选择哪个取决于目标线速率和所选 PLL 的倍频能力。
  3. RX (接收端配置)
    • Line Rate (Gbps) (线速率): 3.125
      解释: 定义接收通道期望接收的原始串行数据传输速率
      建议: 对于全双工通信,通常与 TX 线速率相同。
    • RX off (关闭接收): (未勾选)
      解释: 如果勾选此项,将完全禁用接收功能。
      建议: 仅在确实只需要发送功能时才勾选。
    • Reference Clock (MHz) (参考时钟): 156.250
      解释: 指定提供给这个收发器通道 RX 部分 (主要是时钟数据恢复 CDR 电路) 的参考时钟的频率
      建议: 在许多同步系统中,RX 参考时钟与 TX 参考时钟是同一个来源,因此频率也相同。但某些异步或特殊时钟架构中可能不同。必须匹配硬件上为 RX 提供的参考时钟频率。
  4. Quad Column / Common DRP (Quad 列 / 共享 DRP)
    • Quad Column (Quad 列): Right Column (右列)
      解释: 在一些大型 FPGA 上,收发器 Quad (包含 4 个通道的物理单元) 可能分布在多个物理列上。这个选项可能用于指定当前配置的收发器所在的列,或者影响某些跨列共享资源的配置。具体含义可能依赖于特定的 FPGA 器件。
      建议: 通常保持默认或根据 FPGA 器件的物理布局和资源规划选择。
    • Use Common DRP (使用共享 DRP): (未勾选)
      解释: DRP (Dynamic Reconfiguration Port) 是用于在运行时访问和修改收发器内部寄存器的接口。如果勾选此项,则表示同一 Quad 或一组收发器将共享一个 DRP 接口,以节省 FPGA 内部逻辑资源。如果不勾选,则每个收发器实例(或按配置的通道)可能会生成独立的 DRP 接口。
      建议: 如果你不需要在运行时动态修改收发器参数,可以不勾选。如果你需要 DRP 功能,并且希望节省资源(或者多个通道需要协调配置),可以考虑勾选(但这需要在更高层设计中处理共享 DRP 的访问逻辑)。
  5. Graphical Representation (图形化表示)
    • 内容: 显示了一个标记为 "Quad2" 的方框,内部包含四个 GTX 收发器模块 (GTX_X0Y11 到 GTX_X0Y8),以及关联的 QPLL 和 CPLL 模块。其中 GTX_X0Y8 被高亮显示。
      解释: 这是当前 FPGA 物理资源的一个示意图,显示了一个收发器 Quad 的内部结构。高亮显示的 GTX_X0Y8 代表当前这个 gtwizard_0 IP 核实例正在配置的具体物理通道X0Y8 是该通道在 FPGA 芯片上的唯一位置标识符。图示也展示了 PLL (CPLL, QPLL) 与收发器通道的连接关系。
  6. PLL Selection (PLL 选择)
    • TX (发送 PLL): CPLL
      解释: 选择用于合成发送端高速串行时钟的 PLL 类型。可选的有 CPLL (Channel PLL,每个通道一个) 或 QPLL (Quad PLL,每个 Quad 一个,由 Quad 内所有通道共享)。
      建议: 选择 CPLL 还是 QPLL 取决于 Line RateReference Clock。CPLL 功耗较低但频率合成范围有限;QPLL 范围更广但功耗稍高且是共享资源。向导通常会根据你输入的速率和参考时钟自动计算出可行的 PLL 选项。 如果 CPLL 能满足要求(如此例中 3.125Gbps from 156.25MHz),可以选择 CPLL。如果速率很高或参考时钟特殊导致 CPLL 无法合成,则必须选择 QPLL。
    • RX (接收 PLL): CPLL
      解释: 选择用于接收端 CDR (时钟数据恢复) 的 PLL 参考类型。
      建议: 同 TX PLL 的选择逻辑。在很多情况下,TX 和 RX 使用相同类型的 PLL。
    • Extend reset to 3 ms (延长复位至 3 毫秒): (未勾选)
      解释: 勾选此项会延长向导生成的逻辑中对 PLL 复位信号的保持时间。某些特定情况下,PLL 可能需要更长的复位时间才能可靠锁定。
      建议: 通常保持不勾选,除非遇到 PLL 锁定问题,且 Xilinx 文档或技术支持建议尝试此选项。
  7. Transceiver Selection (收发器选择)
    • Use GTX X0Y8 (使用 GTX X0Y8): (已勾选)
      解释: 确认当前配置的 IP 实例是针对物理位置为 X0Y8 的 GTX 收发器通道。这必须与图形化表示中高亮的模块一致。
      建议: 确保勾选的是你想要使用的物理通道。
    • TX Clock Source (发送时钟源): REFCLK1 Q2
      解释: 关键硬件匹配项! 选择为发送 PLL 提供参考时钟的具体外部参考时钟输入REFCLK0REFCLK1 是每个 Quad 通常具有的两个差分参考时钟输入端口。Q2 可能表示这是 Quad 2 的参考时钟。
      建议: 必须选择与你硬件上实际连接到该 Quad 的 156.25MHz 时钟源的 FPGA 引脚对应的逻辑名称。 如果时钟接到了 REFCLK1 对应的引脚,就必须选 REFCLK1。
    • RX Clock Source (接收时钟源): REFCLK1 Q2
      解释: 选择为接收 CDR 提供参考时钟的具体外部参考时钟输入
      建议: 同 TX 时钟源,必须匹配硬件连接。通常与 TX 使用同一个参考时钟输入。
  8. Other Options (其他选项)
    • Advanced Clocking Option (高级时钟选项): (未勾选)
      解释: 勾选后可能会显示更多关于内部时钟分频、缓冲器选择等的详细配置项。
      建议: 对于标准应用,保持不勾选。
    • PRBS pattern generator and checker (PRBS 码生成器与校验器): (未勾选)
      解释: 启用内置的伪随机二进制序列 (PRBS) 发生和检测功能。这对于测试高速链路的物理层误码率 (BER) 非常有用,可以在没有上层协议的情况下验证链路质量。
      建议: 在进行硬件调试或链路质量测试时强烈建议勾选。对于最终的应用逻辑,可以不勾选以节省资源。
    • Vivado Lab Tools (Vivado 实验室工具): (未勾选)
      解释: 启用此选项会在生成的 IP 中包含必要的接口和逻辑,以便与 Vivado 硬件调试工具(特别是 IBERT - Integrated Bit Error Ratio Tester 和 Serial I/O Analyzer)配合使用,可以在线观察眼图、测量 BER 等。
      建议: 在硬件调试阶段强烈建议勾选。对于最终部署的产品,可以不勾选。
    • Active Transceivers = 1 (活动收发器数量 = 1)
      解释: 显示当前这个 gtwizard_0 IP 核实例配置的活动收发器通道数量。这里是 1,与上面只勾选了 Use GTX X0Y8 一致。如果这里设置大于 1,通常意味着这个 IP 实例将同时配置多个通道(例如实现一个 4 通道的 XAUI 接口),并且上面可能会出现选择多个物理通道的选项。

重要注意事项

硬件匹配警告:线速率、参考时钟频率和参考时钟源选择必须与实际硬件连接严格匹配!如果这些参数设置错误,收发器可能完全无法工作,或者在温度/电压变化时出现间歇性错误。这些参数通常是链路问题的首要排查点。

总结

这个页面是配置收发器速度和时钟的关键。核心步骤是:

  1. 设置正确的线速率 (Line Rate)
  2. 设置正确的参考时钟频率 (Reference Clock),必须与硬件匹配。
  3. 根据速率和参考时钟选择合适的 PLL 类型 (CPLL/QPLL)
  4. 选择正确的参考时钟来源 (TX/RX Clock Source),必须与硬件连接匹配。
  5. 确认配置的是正确的物理收发器通道 (Use GTX ...)
  6. 根据需要启用 PRBS 和 Vivado Lab Tools 进行测试和调试。

最佳实践:这些设置之间存在复杂的相互依赖关系(例如,参考时钟和线速率共同决定了 PLL 是否能锁定),配置时需格外小心。在未完全确定前,建议先完成物理电路设计,确认参考时钟频率和连接,再进行这些参数的配置。

7 Series FPGAs Transceivers Wizard 编码与时钟配置页面

页面 3: Encoding and Clocking (编码与时钟)

页面整体功能

这个标签页专注于配置收发器 (GT) 的核心数据处理和时钟相关方面。主要包括:

  1. 数据路径宽度配置: 定义 FPGA 内部逻辑 (Fabric) 与收发器之间并行数据总线的宽度。
  2. 线路编解码: 选择在串行线路上发送/接收时使用的数据编码/解码方案 (如 8b/10b)。
  3. DRP 时钟: 如果启用动态重配置端口 (DRP),设置其工作时钟频率。
  4. 同步与时钟: 配置收发器内部的弹性缓冲器 (Buffer) 和关键的时钟信号来源,确保 FPGA Fabric 与高速串行域之间的正确数据传输和时钟域交叉。
  5. 可选端口: 提供一系列可选的控制、状态和数据处理相关端口,以支持高级功能或特定协议需求。

界面内容详解

  1. TX (发送端配置)
    • External Data Width (Bits) (外部数据宽度): 20
      解释: 指的是 FPGA Fabric(用户逻辑)提供给收发器发送端的并行数据总线的位宽。这是在进行任何线路编码 之前 的数据宽度。例如,如果用户逻辑产生 16 位数据,并且使用了 8b/10b 编码,那么这里可以设置为 16。如果未使用编码,此宽度通常等于内部宽度。
      建议: 根据你的用户逻辑接口设计以及所选的编码方式来设置。 常见的选择有 8, 10, 16, 20, 32, 40, 64, 80 等,具体可用值取决于 GT 类型和配置。图片中选了 20 位,这通常与内部 20 位宽度和 Encoding: NoneEncoding: 8b/10b (对于 16 位外部数据) 匹配。
    • Encoding (编码): None
      解释: 选择在数据串行化发送前要应用的线路编码方案。编码的目的是确保信号中有足够的跳变以帮助接收端进行时钟恢复,并维持直流平衡。
      • None: 不进行任何编码,直接发送原始并行数据。
      • 8b/10b: 将 8 位数据(+控制符)编码为 10 位符号发送。常用于 PCIe Gen1/2, SATA, Aurora 等。选择此项时,External Data Width 通常是 8 或 16,Internal Data Width 会是 10 或 20。
      • 64b/66b: 更高效,用于 10Gbps+ 速率。
      • 其他特定编码(如 SONET 加扰)。

      建议: 必须根据你所实现的通信协议标准选择。 如果协议要求 8b/10b,就必须选 8b/10b。如果协议无编码要求或数据已预编码,选 None。图片选择了 None,表示数据按 20 位并行接口直接进入内部处理。
    • Internal Data Width (Bits) (内部数据宽度): 20
      解释: 指的是收发器内部,在经过线路编码之后、进入串行器 (Serializer) 之前的并行数据总线宽度。这个宽度直接关系到收发器的内部时钟频率 (Internal Clock = Line Rate / Internal Data Width)。
      建议: 这个值通常由向导根据 External Data WidthEncoding 的选择自动计算或限制。用户一般不需要直接修改。对于 Encoding: None,内外宽度通常一致。对于 8b/10b 编码,若外部 16 位,则内部通常是 20 位。
  2. RX (接收端配置) (通常与 TX 对称)
    • External Data Width (Bits) (外部数据宽度): 20
      解释: 收发器接收端在完成线路解码之后,输出给 FPGA Fabric(用户逻辑)的并行数据总线宽度。
      建议: 对于全双工对称链路,通常与 TX 的 External Data Width 相同。
    • Decoding (解码): None
      解释: 选择用于解码接收到的串行数据的方案。
      建议: 必须与链路对端发送时使用的编码方式一致。 图片选择了 None
    • Internal Data Width (Bits) (内部数据宽度): 20
      解释: 收发器内部,在解串器 (Deserializer) 之后、进入线路解码器之前的并行数据总线宽度。
      建议: 同 TX,通常由向导根据 External Data WidthDecoding 自动确定。
  3. DRP (动态重配置端口) 时钟
    • Use DRP 复选框: (未勾选)
      解释: 是否为这个收发器实例启用 DRP 接口。DRP 允许用户通过 FPGA Fabric 在运行时读写收发器的内部配置寄存器。
      建议: 只有当你确实需要在运行时动态改变收发器参数(如均衡设置、环回模式等)或进行深入诊断时才需要勾选。不勾选可以节省资源。
    • DRP/System Clock Frequency (MHz) (DRP/系统 时钟频率): 60
      解释: 关键硬件输入(如果 Use DRP 被勾选)! 指定驱动 DRP 接口逻辑的外部时钟频率。这个时钟信号 (dclk) 必须由用户在设计中提供给收发器 IP 的对应端口。
      旁注 [0.0 - 175.01]: 显示了当前配置下可接受的 DRP 时钟频率范围。
      建议: 如果你启用了 DRP,必须在这里输入你实际提供的 DRP 时钟的频率。 频率不匹配会导致 DRP 操作失败。60MHz 是一个可选值,确保它符合你的实际时钟源。
  4. Optional Ports (可选端口 - 第一部分,与数据/编码相关)
    • TXBYPASS8B10B: 旁路内置 8b/10b 编码器。
    • TXCHARDISPMODE, TXCHARDISPVAL: 手动控制 8b/10b 运行视差。
    • RXCHARISCOMMA: 指示接收到 8b/10b 同步字 (Comma)。
    • RXCHARISK: 指示接收到 8b/10b 控制字符 (K 字符)。(图片中勾选了此项)
    • RXSTARTOFSEQ: 指示接收到序列起始信号。
    • 建议: 图片中勾选了 RXCHARISK,这意味着用户逻辑需要知道接收到的字符是数据 (D) 还是控制 (K),这在处理 8b/10b 编码的协议时非常常见。其他端口按需勾选。
  5. Synchronization and Clocking (同步与时钟)
    • TX (发送端时钟)
      • Enable TX Buffer (启用 TX 缓冲): (已勾选)
        解释: 在 Fabric 和 TX PMA 之间插入弹性 FIFO,用于跨时钟域和处理相位差。
        建议: 强烈建议保持勾选 (启用)。 禁用需要极专业的时钟管理。
      • TXUSRCLK Source (TX 用户时钟源): TXOUTCLK
        解释: 选择驱动发送端用户逻辑的时钟源 (txusrclk)。TXOUTCLK 是由收发器生成的、与内部高速时钟相关的时钟,输出给 Fabric。
        建议: 通常选择 TXOUTCLK 这使得用户逻辑与收发器 TX 接口在同一个时钟域工作,是推荐的设计方式。
      • TXOUTCLK Source (TXOUTCLK 时钟源): Use TXPLLREFCLK (复选框未勾选)
        解释: 决定 TXOUTCLK 信号本身的来源。不勾选通常表示它基于 PMA 内部时钟或 RX 恢复时钟。
        建议: 保持不勾选是常见设置。勾选 Use TXPLLREFCLK 会使 TXOUTCLK 基于参考时钟,用于需要精确频率匹配参考时钟的场合。
    • RX (接收端时钟)
      • Enable RX Buffer (启用 RX 缓冲): (已勾选)
        解释: 在 RX PMA 和 Fabric 之间插入弹性 FIFO,用于时钟域交叉和频率/相位补偿。
        建议: 几乎必须勾选 (启用)。
      • RX Buffer Bypass Mode (RX 缓冲旁路模式): Auto
        解释: 控制 RX 缓冲器操作模式。Auto 让向导自动选择。
        建议: 保持默认 (Auto)。
      • RXUSRCLK Source (RX 用户时钟源): TXOUTCLK
        解释: 选择驱动接收端用户逻辑的时钟源 (rxusrclk)。
        建议: 选择 TXOUTCLK 适用于同步系统或环回测试,表示 RX 和 TX 用户逻辑使用相同由收发器提供的时钟。如果需要使用恢复时钟驱动 RX 逻辑(异步系统),应选择 RXRECCLK (如果可用)。需根据系统时钟架构决定。
      • RXOUTCLK Source (RXOUTCLK 时钟源): Use RXPLLREFCLK (复选框未勾选)
        解释: 决定 RX 侧输出给 Fabric 的时钟 (RXOUTCLK) 的来源。
        建议:TXOUTCLK Source,不勾选是常见设置。
  6. Optional Ports (可选端口 - 第二部分,与时钟/复位/状态相关)
    • TXPCSRESET, RXPCSRESET: PCS 复位。
    • TXPMARESET, RXPMARESET: PMA 复位。(图片中 RXPMARESET 被勾选)
    • TXSYSCLKSEL, RXSYSCLKSEL: 参考时钟选择。
    • TXRATE, RXRATE: 动态速率控制。
    • TXBUFSTATUS, RXBUFSTATUS: 缓冲器状态。
    • TX8B10BEN: 动态 8b/10b 使能。
    • RXBUFRESET: RX 缓冲器复位。
    • RXCDRHOLD: 保持 CDR 状态。
    • CPLLPD, QPLLPD: PLL 电源管理。
    • CLKRSVD: 保留。
    • 建议:
      • 图片中勾选了 RXPMARESET,表明用户需要单独控制接收端 PMA 的复位,这是进行可靠初始化和错误恢复的常用做法。建议同时勾选 TXPMARESET 以及 TXPCSRESET, RXPCSRESET, RXBUFRESET,并将它们连接到合适的复位逻辑。
      • 其他端口按实际需求勾选。例如,需要流控则勾选 RXBUFSTATUS

重要注意事项

编码与时钟配置警告:数据宽度、编码方式和时钟配置必须协调一致。选择不匹配的组合可能导致收发器无法正常工作。特别注意,如果实现特定协议(如 PCIe、SATA),必须严格按照协议要求配置编码。另外,缓冲器几乎总是应该启用,除非你是经验丰富的高速设计专家。

总结

"Encoding and Clocking" 页面配置了数据如何在并行域和串行域之间转换,以及如何同步时钟。关键点:

  1. 设置正确的编码/解码方式(或 None)。
  2. 设置与用户逻辑匹配的外部数据宽度
  3. 确保内部数据宽度与上述设置匹配。
  4. 如果使用 DRP,提供正确的DRP 时钟频率
  5. 启用 TX 和 RX 缓冲器
  6. 根据系统时钟架构选择合适的 TX/RX 用户时钟源
  7. 勾选必要的复位端口 (PMA, PCS, Buffer) 和状态/控制端口(如 RXCHARISK)。

最佳实践:编码和时钟配置是高速串行链路设计中最容易出错的部分之一。强烈建议保持 TX 和 RX 缓冲器启用,始终按协议规范选择编码方式,确保用户逻辑与收发器接口数据宽度匹配,并实现正确的复位逻辑。这些设置对接口功能和时序至关重要。

7 Series FPGAs Transceivers Wizard 同步字对齐与均衡配置页面

页面 4: Comma Alignment and Equalization (同步字对齐与均衡)

页面整体功能

这个页面主要配置两个方面:

  1. 接收端同步字 (Comma) 检测与对齐: 用于在接收到的串行数据流中识别特殊的同步字符或码组(Comma),并以此为依据确定数据字节(或字)的边界,实现数据流的正确对齐。这对于使用了 8b/10b 等编码的协议至关重要。
  2. 收发端信号均衡 (Equalization) 与端接 (Termination): 配置用于补偿高速信号在传输过程中(例如经过 PCB 走线、连接器)产生的损耗和失真的电路。包括发送端的预加重 (Pre-emphasis) 和接收端的均衡 (如 DFE, LPM) 及端接电阻。

界面内容详解

  1. RXCOMMA Alignment (接收同步字对齐)
    • RX COMMA detection (接收 COMMA 检测)
      • Use comma detection (使用 Comma 检测): (已勾选)
        解释: 启用收发器内置的 Comma 字符检测功能。如果禁用,用户需要在 FPGA Fabric 中自行实现数据对齐逻辑。
        建议: 对于使用 8b/10b 等需要数据对齐的协议,必须勾选此项
      • Comma Value (Comma 值): User defined (用户定义)
        解释: 定义用于对齐的特定 Comma 字符的码值(通常是 10 位)。可以选择预定义的标准 Comma(如 K28.5),或选择 User defined 手动输入。
        Plus Comma (正 Comma): 0101111100 (对应 K28.5 的正视差编码)
        Minus Comma (负 Comma): 1010000011 (对应 K28.5 的负视差编码)
        建议: 必须根据你的协议规范来设置。 K28.5 是 8b/10b 编码中最常用的 Comma 字符,适用于 Aurora、SATA、PCIe 等多种协议。如果协议使用其他 Comma,需要在这里正确输入其正负视差的 10 位编码。
      • Comma Mask (Comma 掩码): 1111111111
        解释: 用于指定在比较接收到的数据和 Comma Value 时,哪些位需要精确匹配。1 表示需要匹配,0 表示忽略。全 1 表示必须完全匹配。
        建议: 通常保持全 1,要求精确匹配 Comma 字符。
      • Decode valid comma only (仅解码有效 Comma): (未勾选)
        解释: 如果勾选,则只将符合 8b/10b 编码规则(视差正确等)的 Comma 视为有效对齐字符。
        建议: 通常建议勾选,以增加对齐的鲁棒性,避免因误码导致的错误对齐。
      • Combine plus/minus commas (double-length comma) (合并正/负 Comma - 双长度 Comma): (未勾选)
        解释: 某些协议可能使用连续的正负 Comma(或负正 Comma)作为一个更长的对齐标记。勾选此项启用这种双长度 Comma 检测。
        建议: 仅在协议规范要求时勾选。
      • Align to (对齐到): Any Byte Boundary (任意字节边界)
        解释: 指定检测到 Comma 后,将数据流对齐到哪个边界。
        • Any Byte Boundary: 对齐到任意一个字节(8 位数据)的边界。适用于 8b/10b 等字节导向的编码。
        • Any Word Boundary: 对齐到某个预定义的字边界(可能是 16 位、20 位等,取决于内部数据宽度)。

        建议: 对于 8b/10b 编码,通常选择 Any Byte Boundary
    • Optional Ports (可选端口 - Comma 对齐相关)
      • ENPCOMMAALIGN: 使能正 Comma 对齐。
      • ENMCOMMAALIGN: 使能负 Comma 对齐。
      • RXSLIDE: 勾选此项,当自动对齐逻辑找不到 Comma 时,会尝试通过滑动数据窗口(bit slip 或 byte slip)来重新寻找对齐。(图片中勾选了此项)
      • RXBYTEISALIGN: 输出端口,指示当前接收数据是否已实现字节对齐。
      • RXBYTEREALIGN: 输出端口,指示收发器正在尝试重新进行字节对齐。
      • RXCOMMADET: 输出端口,指示当前已检测到 Comma 字符。
      • 建议:
        • RXSLIDE 对于需要自动处理对齐丢失的情况非常有用,建议勾选
        • RXBYTEISALIGN 是一个关键的状态信号,用户逻辑通常需要监控此信号,在确认数据对齐后才开始处理接收到的数据,强烈建议勾选(虽然图片里没勾,但实际应用中常用)。
        • RXCOMMADETRXBYTEREALIGN 可用于调试或高级状态监控。
  2. Termination and Equalization (端接与均衡)
    • Differential Swing and Emphasis Mode (差分摆幅与加重模式): Custom (自定义)
      解释: 控制发送端输出信号的差分电压摆幅和预加重/去加重设置。预加重/去加重是为了预补偿信号在高频分量上的损耗。可以选择 Default(由向导根据速率等自动选择推荐值),或 Custom 手动设置。
      建议: 如果不确定,可以先选 Default。如果需要精细调整以优化信号质量,或者协议有特定要求,则选择 Custom 并在后续(或通过 DRP)设置具体参数(如 TXDIFFCTRL, TXPOSTCURSOR, TXPRECURSOR)。图片选了 Custom,表明后续需要手动调整。
    • RX Equalization (接收均衡)
      • Mode (模式): DFE-Auto (DFE - 自动)
        解释: 选择接收端使用的主要均衡技术。
        • DFE: 判决反馈均衡 (Decision Feedback Equalization)。一种非线性均衡,效果较好,尤其擅长处理反射等引起的符号间干扰 (ISI),但需要自适应调整。
        • LPM: 低功耗模式 (Low Power Mode)。通常是一种线性均衡,功耗较低,但均衡能力相对 DFE 弱。
        • Auto: 可能表示让收发器根据信号质量自动选择 DFE 或 LPM(或两者的组合)。

        建议: 对于高速率或长距离传输,DFEDFE-Auto 通常是首选,能提供更好的信号恢复能力。图片选择了 DFE-Auto
      • Automatic Gain Control (自动增益控制): Auto
        解释: 控制接收端前端的可变增益放大器 (VGA) 如何调整增益。Auto 表示使用内置的自动增益控制环路。也可以选择手动固定增益。
        建议: 保持默认 (Auto)。 AGC 对于适应不同的信号强度至关重要。
      • Use RX equalizer CTLE3 adaptation logic (DFE mode only) (使用 RX 均衡器 CTLE3 自适应逻辑 - 仅 DFE 模式): (未勾选)
        解释: CTLE (Continuous Time Linear Equalizer) 是另一种线性均衡器,通常作为 DFE 的前置补充。这个选项可能启用更高级的 CTLE 自适应算法。
        建议: 保持不勾选,除非遇到严重的信号完整性问题且文档推荐启用此高级特性。
    • RX Termination (接收端接)
      • Voltage (电压): Programmable (可编程)
        解释: 设置接收端差分输入信号的端接电压。通常端接到某个参考电压(如 VTT)。Programmable 表示端接电压值可以通过内部设置或 DRP 调整。
        建议: 保持 Programmable
      • Trim Value (mV) (微调值): 800
        解释:Voltage 设为 Programmable 时,这里设置具体的端接电压参考值(单位:毫伏 mV)。800mV 是一个常见的值。
        建议: 需要根据板级设计和使用的 I/O 标准(如 LVDS, CML 等虽然GT内部结构复杂,但外部通常需要合适的参考)来设置。可以从默认值开始。
  3. Optional Ports (可选端口 - 均衡/端接/其他)
    • TX 相关:
      • TXPOLARITY: 动态翻转 TX 输出信号极性。
      • TXINHIBIT: 抑制 TX 输出。
      • TXDIFFCTRL: 控制 TX 差分摆幅。
      • TXPOSTCURSOR, TXPRECURSOR, TXMAINCURSOR: 控制 TX 预加重/去加重的系数(抽头值)。需要 Differential Swing and Emphasis Mode 设为 Custom 时才可控。
      • TXQPISENN, TXQPISENP: QPI 相关信号(通常用于 Intel QPI)。
      • TXQPIBIASEN, TXQPIWEAKPUP, TXQPISTRONGPDOWN: QPI 偏置和上下拉控制。
    • RX 相关:
      • RXPOLARITY: 动态翻转 RX 输入信号极性。
      • RXDFELPMRESET: 复位 DFE/LPM 均衡器。(图片中勾选了此项)
      • RXDFEAGCOVRDEN: DFE 自动增益控制覆盖使能。
      • RXLPMHFKLROVRDEN, RXLPMHFOVRDEN: LPM 高频/低频覆盖使能。
      • RXQPIEN, RXQPISENN, RXQPISENP: QPI 相关信号。
      • RXLPMEN: 手动使能 LPM 模式。
    • 建议:
      • TX 加重控制: 如果你需要精确控制发送端的信号波形以优化链路,需要勾选 TXDIFFCTRL, TXPOSTCURSOR, TXPRECURSOR 并连接到控制逻辑(可能需要通过 DRP 设置)。
      • RX DFE/LPM Reset: 勾选 RXDFELPMRESET 并连接到复位逻辑是推荐做法,有助于确保均衡器在系统启动或错误恢复后能正确重新开始自适应过程。
      • 极性翻转: TXPOLARITY, RXPOLARITY 在 PCB 走线 P/N 画反时可以方便地通过软件修正,比较有用。
      • 其他端口属于高级功能或特定协议(QPI),按需勾选。

重要注意事项

信号完整性警告:高速串行链路的信号完整性对于可靠通信至关重要。如果发现链路误码率高或者无法建立稳定通信,首先检查均衡设置是否正确,并考虑调整发送预加重和接收均衡。对于使用8b/10b编码的协议,正确配置Comma对齐是确保数据帧边界正确识别的基础。

总结

"Comma Alignment and Equalization" 页面是配置数据对齐和信号完整性的关键:

  1. 对于使用编码的协议,启用并正确配置 Comma 检测与对齐 是必须的。关注 Comma Value, Align to, 以及 RXSLIDE, RXBYTEISALIGN 端口。
  2. 选择合适的接收均衡模式 (DFELPM),通常 DFE-Auto 是高速应用的首选。
  3. 如果需要优化发送信号质量,将发送模式设为 Custom 并勾选相关控制端口 (TXDIFFCTRL, TXPOSTCURSOR 等)。
  4. 勾选并连接均衡器复位端口 (RXDFELPMRESET) 是良好实践。
  5. 考虑勾选极性翻转端口 (TXPOLARITY, RXPOLARITY) 以增加设计灵活性。

最佳实践:对于高速链路(尤其是3Gbps以上),推荐在硬件调试阶段使用眼图分析和扫描DFE/TX预加重参数,找到最佳设置值。如果使用8b/10b编码,确保正确配置K28.5或其他适合协议的Comma字符,同时启用RXSLIDE功能以支持自动重新对齐。这些设置直接影响数据能否被正确接收和解析,以及高速链路的稳定性和误码率。

7 Series FPGAs Transceivers Wizard PCIe, SATA, PRBS配置页面

页面 5: PCIe, SATA, PRBS (PCIe, SATA, PRBS功能)

页面整体功能

这个页面主要集中配置与特定高速串行协议(PCI Express 和 SATA)相关的专用功能,以及通用的伪随机码序列 (PRBS) 测试功能。它允许用户启用和定制这些协议所需的特殊信令、状态转换和测试模式。

界面内容详解

  1. PCIe Express and SATA (PCI Express 与 SATA)
    • Enable PCI Express (启用 PCI Express): (未勾选)
      解释: 勾选此项会启用收发器中针对 PCI Express 协议优化的特定功能和模式。这通常会影响低功耗状态 (如 L0s, L1) 的管理、信标 (Beacon) 信号的发送/接收、电气空闲 (Electrical Idle) 状态的检测和处理等。
      建议: 只有当你确实要使用这个收发器来实现 PCI Express 接口时才勾选。 勾选后可能会自动设定或限制其他配置页(如线速率、编码)的选项以符合 PCIe 规范。
    • SATA COM sequence (SATA COM 序列)
      解释: SATA (Serial ATA) 协议使用特殊的带外 (Out-of-Band, OOB) 信号来进行链路初始化和速率协商。这涉及到发送特定模式的 COMINIT/COMWAKE/COMRESET 序列,这些序列由特定数量的突发 (Bursts) 和空闲 (Idles) 组成。
      Bursts (突发数): 4 ([0 - 7])
      Idles (空闲数): 4 ([0 - 7])
      建议: 只有当你使用此收发器实现 SATA 接口时才需要配置这些值。 这些数值必须符合 SATA 协议规范中定义的 OOB 信令时序。通常保持默认值即可满足标准 SATA 要求。
    • PCI Express Parameters (PCI Express 参数)
      解释:Enable PCI Express 被勾选时,这里会显示与 PCIe 电气特性和状态转换相关的参数。
      Transition Time (转换时间):
      • To P2 (进入 P2 状态时间): 100 ([0 - 255])
      • From P2 (离开 P2 状态时间): 60 ([0 - 4095])
      • To/From Non P2 (进入/离开非 P2 状态时间): 60 ([0 - 255])

      解释: P2 是 PCIe 中的一种低功耗状态。这些参数定义了进入或离开 P2 状态(以及其他非 P2 低功耗状态)所允许的时间或需要满足的条件相关的计数值(具体单位可能需要查阅 PCIe 规范或 GT Wizard 文档)。
      建议: 如果启用了 PCIe,通常保持向导提供的默认值,这些值基于 PCIe 规范。除非有特殊需求或规范更新,一般不修改。
    • Optional Ports (可选端口 - PCIe/SATA 相关)
      • LOOPBACK: 启用各种环回测试模式(Near-End PCS/PMA, Far-End PCS/PMA)。
      • RXCOMWAKEDET: 检测到 COMWAKE OOB 信号。 (SATA)
      • TXDETECTRX: 发送端请求接收端进行检测(用于判断接收端是否存在)。(PCIe/SATA)
      • RXSTATUS: 接收端状态指示(如信号丢失、无效码等)。
      • TXCOMINIT: 发送 COMINIT OOB 信号。(SATA)
      • TXELECIDLE: 强制发送端进入电气空闲状态。(PCIe/SATA)
      • RXVALID: 接收到的数据有效指示。
      • TXCOMSAS: 发送 COM SAS 信号 (用于 SAS - Serial Attached SCSI)。
      • PHYSTATUS: 接收端物理层状态指示(可能表示检测到信号)。(PCIe/SATA)
      • RXCOMINITDET: 检测到 COMINIT OOB 信号。(SATA)
      • TXCOMWAKE: 发送 COMWAKE OOB 信号。(SATA)
      • RXCOMSASDET: 检测到 COM SAS 信号。(SAS)
      • TXCOMFINISH: 发送 COM FINISH 信号 (可能是 SAS 或其他协议)。
      • TXPOWERDOWN, RXPOWERDOWN: 发送/接收端功耗降低(Power Down)控制。

      建议:
      • SATA: 如果实现 SATA,需要勾选 TXCOMINIT, TXCOMWAKE, RXCOMWAKEDET, RXCOMINITDET, TXDETECTRX, PHYSTATUS, TXELECIDLE 等 OOB 相关端口。
      • PCIe: 如果实现 PCIe,需要勾选 TXDETECTRX, PHYSTATUS, TXELECIDLE, TXPOWERDOWN, RXPOWERDOWN 等电气空闲和低功耗状态控制端口。
      • LOOPBACK: 调试时非常有用,建议勾选以方便进行各种环回测试。
      • 其他端口按需勾选。
  2. OOB signalling and PRBS (带外信令与 PRBS)
    • Use RX OOB Signal Detection (使用 RX OOB 信号检测): (未勾选)
      解释: 启用接收端的带外 (OOB) 信号检测器。OOB 信号是像 SATA 和 PCIe 在链路初始化阶段使用的低频信号模式,用于交换基本信息。
      建议: 如果实现 SATA 或 PCIe,必须勾选此项。
    • PRBS (伪随机二进制序列)
      • Use PRBS Detector (使用 PRBS 检测器): (未勾选)
        解释: 启用内置的 PRBS 码型检测器。发送端发送 PRBS 码流,接收端使用此检测器来检查接收到的码流是否有误码,并计算误码率 (BER)。
        建议: 在进行链路质量测试和硬件调试时强烈建议勾选
      • Use Port TXPRBSSEL (使用 TXPRBSSEL 端口): (未勾选)
        解释: 勾选此项,会引出一个名为 TXPRBSSEL 的端口,允许用户通过 FPGA Fabric 动态选择要发送的 PRBS 码型(如 PRBS7, PRBS15, PRBS23, PRBS31)。如果不勾选,通常在向导中固定选择一种 PRBS 码型。
        建议: 如果需要测试多种 PRBS 码型,或者希望通过软件控制测试模式,建议勾选。
      • Use Port TXPRBSFORCEERR (使用 TXPRBSFORCEERR 端口): (未勾选)
        解释: 勾选此项,会引出一个名为 TXPRBSFORCEERR 的端口。当此端口有效时,发送端会在发送的 PRBS 码流中故意注入一个错误。这用于测试接收端的错误检测能力。
        建议: 在需要验证接收端错误计数功能时勾选。
      • RXPRBS_LOOPBACK (RX PRBS 环回): (未勾选)
        解释: 这个选项可能用于某种内部 PRBS 环回测试模式,具体功能需查阅文档。
        建议: 通常保持不勾选,除非特定测试场景需要。

重要注意事项

协议匹配警告:如果你的设计是实现PCIe或SATA协议,必须在此页面正确启用相应功能并配置必要的端口,否则链路将无法正常建立。同时,不要在不必要的情况下启用这些协议特定功能,因为它们会增加设计复杂度并可能限制其他参数的选择。

总结

"PCIe, SATA, PRBS" 页面是协议特定功能和测试功能的集合:

  1. 如果你的目标是 PCIe 或 SATA,必须启用相应的功能 (Enable PCI Express 或 OOB 相关配置和端口)。对于其他协议或自定义协议,通常不勾选这些。
  2. SATA OOB 参数需要符合规范。
  3. PCIe 低功耗状态参数通常使用默认值。
  4. 勾选协议所需的特定可选端口(如 OOB 信号、电气空闲控制)。
  5. 为了进行链路质量测试和调试强烈建议启用 PRBS 检测器 (Use PRBS Detector),并根据需要启用动态选择码型 (Use Port TXPRBSSEL) 和错误注入 (Use Port TXPRBSFORCEERR) 的端口。
  6. LOOPBACK 端口 对于各种层级的调试非常有价值。

最佳实践:在初始硬件调试阶段,建议启用PRBS功能进行基础链路测试,确认物理层工作正常后再配置协议相关功能。对于SATA和PCIe实现,请参考对应协议规范手册中的链路训练和OOB信令要求,确保所有必要的可选端口都被勾选。LOOPBACK功能在隔离问题时非常有用,特别是区分发送端还是接收端问题时。

7 Series FPGAs Transceivers Wizard 通道绑定与时钟校正配置页面

页面 6: CB and CC Sequence (通道绑定与时钟校正)

页面整体功能

这个页面用于配置两个相关的高级功能,主要用于多通道(Multi-Lane)高速串行接口:

  1. Channel Bonding (通道绑定): 允许多个独立的收发器通道(Lanes)组合成一个逻辑上的更宽的接口。为了实现这一点,接收端需要能够补偿各个通道之间由于 PCB 走线长度差异、温度变化等因素造成的信号到达时间偏差(Skew),通道绑定机制就是用来检测和补偿这种偏差的。
  2. Clock Correction (时钟校正): 用于补偿发送端和接收端参考时钟之间存在的微小频率差异(通常以 PPM - Parts Per Million 为单位衡量)。通过在数据流中周期性地插入或删除特殊的时钟校正序列(通常是 Skip 字符或符号),接收端的弹性缓冲器可以适应这种频率差异,防止上溢或下溢。

界面内容详解

  1. Channel Bonding (通道绑定)
    • Use Channel Bonding (使用通道绑定): (未勾选)
      解释: 启用内置的通道绑定功能。启用后,收发器会寻找特定的通道绑定序列(通常由 Comma 字符或其他特殊字符组成),并测量不同通道上该序列的到达时间差,然后调整每个通道的延迟(通常通过 RX 缓冲区的读指针),使数据在输出到 Fabric 时对齐在同一个时钟周期。
      建议: 只有当你的应用是一个需要将多个收发器通道绑定在一起形成逻辑宽接口(例如 XAUI, Interlaken, 或某些自定义的多通道协议)时,才需要勾选此项。 对于单通道应用(如 SATA, 单通道 Aurora, SGMII)或不需要硬件自动绑定的多通道应用,保持不勾选。
    • Use Two Channel Bonding Sequences (使用两个通道绑定序列): (未勾选)
      解释: 某些协议或配置可能使用两种不同的序列来进行通道绑定或状态指示。勾选此项启用对第二种序列的检测。
      建议: 仅在协议规范要求时勾选。标准的通道绑定通常只需要一种序列。
    • Sequence Max Skew (序列最大时滞): 1
      解释: 定义了通道绑定逻辑能够补偿的最大通道间时滞(Skew)。这个值通常以"序列长度"(Sequence length)为单位,或者代表特定的时间单位(需要查阅该版本向导的具体文档确认单位)。值为 1 可能意味着可以补偿最多一个序列长度或一个特定时间单位的偏差。可选值通常是有限的几个整数,对应不同的补偿范围。
      建议: 需要根据你 PCB 设计的走线长度匹配精度、协议要求的时滞容限以及收发器的能力来选择。PCB 走线越长、速率越高,潜在的时滞可能越大。可以从默认值开始,如果仿真或测试发现时滞超出范围,再尝试增加。查阅 GT Wizard 文档获取具体单位和可选范围的解释。
    • Sequence length (序列长度): 1
      解释: 定义了用于通道绑定的序列的基本长度,单位可能是字节或内部数据宽度对应的符号数。
      建议: 需要根据协议规范中定义的通道绑定序列来设置。例如,如果协议使用 4 个连续的 Comma 字符作为绑定序列,并且内部宽度是 2 字节,那么序列长度可能需要设置为 2(代表 4 字节)。
  2. Clock correction (时钟校正)
    • Use Clock Correction (使用时钟校正): (未勾选)
      解释: 启用内置的时钟校正功能。启用后,接收端会在数据流中检测预定义的时钟校正序列(通常是 Skip 字符/符号,如 8b/10b 中的 /S/)。当检测到该序列时,接收端的 RX 弹性缓冲区的读指针会进行调整(通常是跳过一个读操作,即删除 Skip 序列),以此来匹配发送端和接收端参考时钟之间存在的微小频率差异。发送端也需要配合,在其本地缓冲器接近满或空,且检测到合适的插入时机时,主动在数据流中插入时钟校正序列。
      建议: 当发送端和接收端使用相互独立的参考时钟(即异步时钟系统,Asynchronous Clocking System)时,即使它们的标称频率相同,也几乎必须启用时钟校正功能。 这是因为独立的晶振总会有 PPM 级别的频率偏差,长时间运行会导致 RX 缓冲区溢出(发送时钟快)或下溢(发送时钟慢)。常见的异步协议如 Aurora 8b/10b 就强制要求使用时钟校正。如果收发双方使用严格同步的(同源)参考时钟,则理论上可以不勾选。
    • Use Two Clock Correction Sequences (使用两个时钟校正序列): (未勾选)
      解释: 某些协议可能定义两种不同的时钟校正序列(例如,一种用于指示增加延迟 - 添加字符,另一种用于指示减少延迟 - 删除字符,虽然通常只用一种删除操作)。勾选此项启用对第二种序列的检测和处理。
      建议: 仅在协议规范明确要求时勾选。标准的 Aurora 等协议通常只需要一种 Skip 序列(用于删除)。
    • PPM Offset +/- (PPM 偏移 +/-): 100 ([-1250 - 1250])
      解释: 定义了时钟校正功能设计用来补偿的最大时钟频率差异范围,单位是 PPM (百万分率)。+/- 100 PPM 表示接收端时钟频率相对于发送端时钟频率可以在 -100 PPM 到 +100 PPM 的范围内漂移(即总偏差可达 200 PPM),时钟校正机制都能正常工作,不会导致缓冲区溢出或下溢。
      建议: 这个值需要大于等于你系统中发送端和接收端两个参考时钟源规格书中可能出现的最大频率偏差绝对值之和。例如,如果发送端使用 +/- 50 PPM 的晶振,接收端也使用 +/- 50 PPM 的晶振,那么它们之间可能的最大频率差就是 100 PPM,此时这里应至少设置为 100 PPM。设置一个比计算出的最大总偏差稍大的值(如 +/- 150 或 +/- 200 PPM)可以提供一些设计裕量。可接受的范围 [-1250 - 1250] 由收发器硬件和配置决定。
    • Periodicity of the CC sequence (bytes) (时钟校正序列的周期性 - 字节): 5000
      解释: 定义了期望接收到的时钟校正序列的大致出现平均周期,单位是字节。这不是一个硬性规定每次必须在这个周期内出现,而是用于接收端内部的一些监控逻辑,比如检测时钟校正序列是否长时间未出现(可能表示链路有问题或发送端配置错误)。
      建议: 需要根据协议规范或发送端的实现来设置。例如,Aurora 协议规定了 Skip 序列插入的规则和频率限制。设置一个与发送端插入策略相符的合理值有助于接收端判断链路状态。如果设置得太小,可能导致不必要的错误报告;太大则可能延迟发现真正的问题。
    • Sequence length (序列长度): 1
      解释: 定义了时钟校正序列的基本长度,单位可能是字节或内部数据宽度对应的符号数。例如,对于 8b/10b 编码中的 Skip 字符 /S/,其长度通常是 1 个字符/字节。
      建议: 根据协议规范中定义的时钟校正序列(如 Skip)来设置。

重要注意事项

多通道系统警告:如果你的设计使用多个通道实现一个宽接口(如XAUI、40G以太网等),必须正确配置通道绑定功能,否则不同通道之间的数据可能会错位,导致接收到错误的数据。对于异步系统,使用独立参考时钟源的链路必须启用时钟校正功能,否则长时间运行可能导致接收缓冲区溢出或下溢,造成链路失效。

总结

"CB and CC Sequence" 页面配置的是针对多通道接口和异步时钟系统的高级功能:

  1. 如果你的应用需要将多个 Lane 绑定成一个逻辑接口(如 XAUI),则启用 Use Channel Bonding 并根据协议和物理设计设置 Sequence Max SkewSequence length
  2. 如果发送端和接收端使用独立的参考时钟(异步系统,如 Aurora),则几乎必须启用 Use Clock Correction,并根据系统时钟源的精度规格设置 PPM Offset +/-,根据协议设置 PeriodicitySequence length
  3. 对于单通道同步时钟系统(收发双方共用一个参考时钟源),通常不需要启用这两个功能,保持默认不勾选即可。

最佳实践:对于多通道设计,应确保PCB走线的长度匹配在协议要求的范围内,即使配置了通道绑定功能。时钟校正功能的PPM设置应考虑温度变化、老化等因素对时钟频率的影响,留出充分的裕量。在调试阶段,可以通过观察接收缓冲区状态和校正序列的实际频率来验证这些设置是否合理。

7 Series FPGAs Transceivers Wizard 摘要页面

页面 7: Summary (摘要)

页面整体功能

这个页面不提供任何配置选项。它的唯一目的是汇总并显示用户在前面所有标签页中所做的关键配置选择。这是一个在最终确认生成 IP 核之前的最后检查点。用户应该仔细核对这里显示的每一项信息,确保它们都符合设计要求。

界面内容详解

表格中列出了主要配置参数及其选定值:

  • Features (特性): GT
    解释: 指示当前配置的是通用的 GT(高速收发器)功能。如果选择了特定的协议(如 PCIe),这里可能会显示协议名称。
  • Protocol File (协议文件): Start_from_scratch
    解释: 显示在 "Line Rate, RefClk Selection" 页面选择的协议模板。Start_from_scratch 表示用户是手动配置所有参数,而不是基于预定义协议。
  • TX Line Rate(Gbps) (发送线速率): 3.125
    解释: 确认设定的发送端串行数据速率为 3.125 Gbps。
  • TX reference clock(MHz) (发送参考时钟): 156.250
    解释: 确认提供给发送端 PLL 的外部参考时钟频率为 156.250 MHz。
  • Encoding (编码): None
    解释: 确认发送端不使用线路编码(如 8b/10b)。
  • TX Internal Data width (发送内部数据宽度): 20
    解释: 确认收发器内部发送路径的并行数据宽度为 20 位。
  • TX External Data width (发送外部数据宽度): 20
    解释: 确认连接到 FPGA Fabric 的发送端并行数据接口宽度为 20 位。
  • TXUSRCLK(MHz) (发送用户时钟): 156.25
    解释: 显示根据配置计算出的发送端用户接口时钟 (txusrclk) 的频率。注意: 这个频率通常是线速率除以内部数据宽度(再考虑编码因素)得到的基础时钟频率或其分频。这里 3.125 Gbps / 20 bits = 156.25 MHz。
  • TXUSRCLK2(MHz) (发送用户时钟 2): 156.25
    解释: 显示发送端用户接口的第二个时钟 (txusrclk2) 的频率。txusrclktxusrclk2 通常是同一个时钟信号,驱动 TX 数据和控制信号。
  • TX Buffer Enabled (发送缓冲器启用): true
    解释: 确认发送端的弹性缓冲器已启用。
  • RX Line Rate(Gbps) (接收线速率): 3.125
    解释: 确认设定的接收端串行数据速率为 3.125 Gbps。
  • RX reference clock(MHz) (接收参考时钟): 156.250
    解释: 确认提供给接收端 CDR 的外部参考时钟频率为 156.250 MHz。
  • Decoding (解码): None
    解释: 确认接收端不进行线路解码。
  • RX Internal Data width (接收内部数据宽度): 20
    解释: 确认收发器内部接收路径的并行数据宽度为 20 位。
  • RX External Data width (接收外部数据宽度): 20
    解释: 确认连接到 FPGA Fabric 的接收端并行数据接口宽度为 20 位。
  • RXUSRCLK(MHz) (接收用户时钟): 156.25
    解释: 显示根据配置计算出的接收端用户接口时钟 (rxusrclk) 的频率。
  • RXUSRCLK2(MHz) (接收用户时钟 2): 156.25
    解释: 显示接收端用户接口的第二个时钟 (rxusrclk2) 的频率。
  • RX Buffer Enabled (接收缓冲器启用): true
    解释: 确认接收端的弹性缓冲器已启用。

其他可能显示的参数 (根据配置可能出现):

  • PLL 类型 (CPLL/QPLL)
  • 参考时钟来源 (REFCLK0/REFCLK1)
  • 使用的收发器物理位置 (如 GTX_X0Y8)
  • 启用的可选端口列表
  • 均衡模式 (DFE/LPM)
  • Comma 对齐设置
  • 通道绑定和时钟校正设置
  • 协议特定参数 (PCIe/SATA)
  • PRBS 设置

重要注意事项

最终确认警告:这是生成IP核前的最后检查点。提交后更改配置需要重新生成整个IP核,可能导致设计文件出现不一致。请仔细核实所有关键参数,特别是线速率、参考时钟和数据宽度。确保这些参数与你的硬件设计和接口要求匹配。

总结

"Summary" 页面是 GT Wizard 配置流程的最后一步,用于最终确认所有设置。这是一个只读的摘要信息展示,目的是让用户在生成 IP 核前进行最后一次全面的检查。

  • 仔细核对: 在点击 OK 按钮之前,务必逐项检查摘要页面上的所有参数,特别是线速率、参考时钟频率、数据宽度、编码/解码方式以及用户时钟频率。确保这些值符合你的设计目标和硬件能力。
  • 频率关系: 特别注意线速率、内部数据宽度和用户时钟频率之间的关系。USRCLK 的频率通常约等于 Line Rate / Internal Data Width。检查这个计算出的用户时钟频率是否是你的 FPGA Fabric 逻辑期望的工作频率。
  • 返回修改: 如果发现任何错误或需要调整的地方,可以点击返回到之前的标签页进行修改。

最佳实践:确认无误后点击 OK 按钮,Vivado将根据这些配置生成对应的GT收发器IP核及其相关文件。建议在设计文档中记录这些配置参数,以便日后参考和验证。对于特殊用途或定制应用,还可以考虑保存并文档化该IP配置,以便将来复用或修改。